All-in-one wireless network device

ABSTRACT

A method, apparatus, and computer-readable media for a wireless network device for communicating with a network comprises a memory to store an image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the virtual machines comprises a wireless network application to execute on the multi-tasking operating system; a processor to execute the virtual machines; and a port comprising a physical-layer device to communicate with the network, and a media access controller to communicate with the physical-layer device and the processor.

BACKGROUND

The present invention relates generally to wireless data communications.More particularly, the present invention relates to all-in-one wirelessnetwork devices.

Many wireless network devices are available to facilitate datacommunications and network access at home and in the workplace,including wireless access points, wireless clients, wireless bridges,wireless repeaters, and even wireless-enabled laptop computers andpersonal digital assistants. FIG. 1 shows a conventional combinationwireless network device 100. Wireless network device 100 comprises aprocessor 102, a wireless port 104, a memory controller 110, anon-volatile memory 112, a volatile memory 114, and an antenna 116.

FIG. 2 shows a conventional architecture 200 for a conventionalcombination wireless network device 100 that can act as either awireless access point or a wireless client. Architecture 200 comprises aplurality of software images comprising a software image 202A for thewireless access point and a software image 202B for the wireless client,and wireless port 104 of FIG. 1. Image 202A comprises a conventionaloperating system 204A, a wireless access point application 206A, and amedia access controller (MAC) device driver 210A. Image 202B comprises aconventional operating system 204B, a wireless client application 206B,and a MAC device driver 210B. Wireless port 104 comprises a MAC 212 anda wireless physical-layer device (PHY) 214.

Conventional architecture 200 is limited in that only one wirelessapplication can execute at a time. That is, according to architecture200, combination wireless network device 100 can act either as awireless access point or as a wireless client, but cannot act as bothconcurrently.

Furthermore, switching between modes is slow. For example, in order toswitch from wireless access point mode to wireless client mode,processor 102 must reboot and load wireless client image 202B intovolatile memory 114 before entering wireless client mode.

Finally, architecture 200 is inefficient because operating system 204 isreplicated in each image 202, and can account for up to ⅔ of the storagespace required by each image 202. This inefficiency increases thestorage requirements for both non-volatile memory 112 and volatilememory 114, as well as the time required to transfer each image 202 fromnon-volatile memory 112 to volatile memory 114. These storagerequirements mandate a larger, less portable, and more expensive packagefor conventional combination wireless network device 100.

SUMMARY

In general, in one aspect, the invention features a method, apparatus,and computer-readable media for a wireless network device forcommunicating with a network comprising. The apparatus comprises amemory to store an image comprising a plurality of virtual machines andonly one multi-tasking operating system, wherein each of the virtualmachines comprises a wireless network application to execute on themulti-tasking operating system; a processor to execute the virtualmachines; and a port comprising a physical-layer device to communicatewith the network, and a media access controller to communicate with thephysical-layer device and the processor.

Particular implementations can include one or more of the followingfeatures.

A wireless network device is compliant with a standard selected from thegroup consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and802.11n. The memory comprises a non-volatile memory, and the apparatusfurther comprises a volatile memory; and a memory controller to create acopy of the image from the non-volatile memory to the volatile memory;wherein the processor executes the virtual machines from the volatilememory. The memory comprises a virtual machine queue for each virtualmachine and a processor queue for the processor; the processor storesdata to be processed for the virtual machine being executed by theprocessor in the processor queue; each virtual machine creates a copy inthe respective virtual machine queue of the data in the processor queuewhen the processor is executing the respective virtual machine; and whenthe processor resumes executing one of the virtual machines afterexecuting another of the virtual machines, the one of the virtualmachines copies the data from the respective virtual machine queue tothe processor queue. The wireless network applications are selected fromthe group consisting of a wireless network access point; a wirelessnetwork client; a wireless network point-to-point bridge; a wirelessnetwork multi-point bridge; and a wireless network repeater. The imagefurther comprises a plurality of virtual machine device drivers tocommunicate with the virtual machines; and a media access controllerdevice driver to communicate with the virtual machine device drivers andthe media access controller. The apparatus further comprises an inputdevice to select one or more of the virtual machines; wherein theprocessor executes the virtual machines selected by the input device.The processor executes a plurality of the virtual machines concurrently.The virtual machines comprise a wireless network access point virtualmachine and a wireless network client virtual machine; wherein theprocessor executes the wireless network access point virtual machine andthe wireless network client virtual machine concurrently; wherein thewireless network client virtual machine comprises a first virtualwireless port to communicate with the port, and a first virtual bridgeto communicate with the first virtual wireless port; and wherein thewireless network access point virtual machine comprises a second virtualwireless port to communicate with the port, a virtual distributionservice port to communicate with the first virtual bridge, and a secondvirtual bridge to communicate with the second virtual wireless port andthe virtual distribution service port.

In general, in one aspect, the invention features a method, apparatus,and computer-readable media for a wireless network device forcommunicating with a network. The apparatus comprises a memory to storean image comprising a plurality of virtual machines and only onemulti-tasking operating system, wherein each of the virtual machinescomprises a wireless network application to execute on the multi-taskingoperating system; a processor to execute the virtual machines; and a busto communicate with the processor and the network. The wireless networkdevice is compliant with a standard selected from the group consistingof IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n. Thememory comprises a non-volatile memory, and the apparatus furthercomprises a volatile memory; and a memory controller to create a copy ofthe image from the non-volatile memory to the volatile memory; whereinthe processor executes the virtual machines from the volatile memory.The memory comprises a virtual machine queue for each virtual machineand a processor queue for the processor; wherein the processor storesdata to be processed for the virtual machine being executed by theprocessor in the processor queue; wherein each virtual machine creates acopy in the respective virtual machine queue of the data in theprocessor queue when the processor is executing the respective virtualmachine; and wherein when the processor resumes executing one of thevirtual machines after executing another of the virtual machines, theone of the virtual machines copies the data from the respective virtualmachine queue to the processor queue. The image further comprises aplurality of virtual machine device drivers to communicate with thevirtual machines; and a bus interface driver to communicate with thevirtual machine device drivers and the bus. The apparatus furthercomprises a physical-layer device to communicate with the network; and amedia access controller to communicate with the physical-layer deviceand the bus. The image further comprises a plurality of virtual machinedevice drivers to communicate with the virtual machines; a first businterface driver to communicate with the virtual machine device driversand the bus; a second bus interface driver to communicate with the bus;and a media access controller device driver to communicate with thesecond bus interface driver and the media access controller. Thewireless network applications are selected from the group consisting ofa wireless network access point; a wireless network client; a wirelessnetwork point-to-point bridge; a wireless network multi-point bridge;and a wireless network repeater. The apparatus further comprises aninput device to select one or more of the virtual machines; wherein theprocessor executes the virtual machines selected by the input device.The processor executes a plurality of the virtual machines concurrently.The virtual machines comprise a wireless network access point virtualmachine and a wireless network client virtual machine; wherein theprocessor executes the wireless network access point virtual machine andthe wireless network client virtual machine concurrently; wherein thewireless network client virtual machine comprises a first virtualwireless port to communicate with the port, and a first virtual bridgeto communicate with the first virtual wireless port; and wherein thewireless network access point virtual machine comprises a second virtualwireless port to communicate with the port, a virtual distributionservice port to communicate with the first virtual bridge, and a secondvirtual bridge to communicate with the second virtual wireless port andthe virtual distribution service port.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows a conventional combination wireless network device.

FIG. 2 shows a conventional architecture for a conventional combinationwireless network device that can act as either a wireless access pointor a wireless client.

FIG. 3 shows an all-in-one wireless network device according to apreferred embodiment.

FIG. 4 shows an architecture for the all-in-one wireless network deviceof FIG. 3 according to a preferred embodiment employing an embeddedprocessor.

FIG. 5 shows a process for the all-in-one wireless network device ofFIG. 3 and the architecture of FIG. 4 according to a preferredembodiment.

FIG. 6 shows an architecture for the all-in-one wireless network deviceof FIG. 3 according to a preferred embodiment employing a host processorsuch as the central processing unit (CPU) of a laptop computer.

FIG. 7 shows an architecture enhancement that prevents any data loss.

FIG. 8 shows a wireless network comprising a universal repeateraccording to a preferred embodiment of the present invention.

FIG. 9 shows an architecture for the universal repeater of FIG. 8according to a preferred embodiment employing an embedded processor.

The leading digit(s) of each reference numeral used in thisspecification indicates the number of the drawing in which the referencenumeral first appears.

DETAILED DESCRIPTION

Embodiments of the present invention comprise various all-in-onewireless network devices. FIG. 3 shows an all-in-one wireless networkdevice 300 according to a preferred embodiment. All-in-one wirelessnetwork device 300 comprises a processor 302, a wireless port 304, anoptional wired port 306, an optional input device 308, a memorycontroller 310, a non-volatile memory 312, a volatile memory 314, and anantenna 316. Optional wired port 306 can be used to connect all-in-onewireless network device 300 to wired networks such as Ethernet networksavailable at work, at home, at hotels, and so on. Such embodiments arecompliant, for example, with IEEE standards 802.11, 802.11a, 802.11b,802.11g and 802.11n.

FIG. 4 shows an architecture 400 for all-in-one wireless network device300 according to a preferred embodiment employing an embedded processor.Architecture 400 comprises a software image 402 and wireless port 304 ofFIG. 3. Image 402 comprises a multi-tasking operating system 404, aplurality of virtual machines 406A through 406N each having one of aplurality of virtual machine (VM) device drivers 408A through 408N, anda media access controller (MAC) device driver 410. Wireless port 304comprises a MAC 412 and a wireless physical-layer device (PHY) 414.

A virtual machine is a software architectural block that allows multipleapplications to share one hardware element, such as a wireless port.Each virtual machine 406 comprises a wireless network application toexecute on multi-tasking operating system 404. The wireless networkapplications can include wireless network access points, wirelessnetwork clients, wireless network point-to-point bridges, wirelessnetwork multi-point bridges, wireless network repeaters, and the like.Multi-tasking operating system 404 can be implemented as anymulti-tasking operating system such as eCos, which is described athttp://sources.redhat.com/ecos/about.html, the contents of which areincorporated herein by reference.

FIG. 5 shows a process 500 for all-in-one wireless network device 300and architecture 400 according to a preferred embodiment. Image 202 isstored in non-volatile memory 312. When all-in-one wireless networkdevice 300 powers up (step 502), memory controller 310 creates a copy ofimage 202 in volatile memory 314 (step 504). Processor 302 executesvirtual machines 406 from volatile memory 314 (step 506).

In some embodiments, two or more predetermined virtual machines executeconcurrently whenever all-in-one wireless network device 300 powers up,so no user selection of modes is required. For example, in a universalrepeater embodiment, described in detail below, an access point virtualmachine and a client virtual machine execute concurrently. However, inother embodiments, a user can manipulate input device 308 to select oneor more modes of operation, and processor 302 executes the correspondingvirtual machines 406 according to the user's mode selection. Inputdevice 308 can be a simple slide switch, a touch screen, or othergraphical user interface.

FIG. 6 shows an architecture 600 for all-in-one wireless network device300 according to a preferred embodiment employing a host processor suchas the central processing unit (CPU) of a laptop computer. Architecture600 comprises a software image 602 and a wireless port 304 such aswireless port 304 of FIG. 3. Image 602 comprises a multi-taskingoperating system 604, a plurality of virtual machines 606A through 606Neach having one of a plurality of virtual machine (VM) device drivers608A through 608N, and a MAC device driver. Wireless port 304 comprisesMAC 412 and wireless PHY 414.

Architecture 600 further comprises a host bus 616 that is used forcommunication between wireless port 304 and virtual machines 606. A hostinterface bus driver 618 allows communications between virtual machinedevice drivers 608 and host bus 616. A host interface bus driver 618allows communications between virtual machine device drivers 608 andhost bus 616. A port interface bus driver 620 allows communicationsbetween wireless port 304 and host bus 616. Architecture 600 operates ina manner similar to that described for architecture 400 as process 500of FIG. 5.

In architectures 400 and 600 the virtual machines execute concurrentlyby each using the processor in turn. However, the potential exists fordata such as network packets to be lost when the processor turns fromone virtual machine to another. FIG. 7 shows an architecture enhancement700 that prevents any such data loss. In architecture 700, the processorhas a processor queue 702, and each virtual machine 706A through 706Nhas a respective virtual machine queue 704A through 704N.

The processor stores data to be processed for the virtual machine 706being executed by the processor in the processor queue 702 according towell-known methods. But according to embodiments of the presentinvention, each virtual machine 706 maintains a copy in its virtualmachine queue 704 of the data in the processor queue 702 when theprocessor is executing that virtual machine 706. For example, when theprocessor is executing virtual machine 706A, virtual machine 706Amaintains a copy in its virtual machine queue 704A of the data in theprocessor queue 702.

When the processor is executing another virtual machine 706, the copy iskept intact. Returning to the example, when the processor is executingvirtual machine 706N, virtual machine 706A keeps in virtual machinequeue 704A an intact copy of the processor queue 702 as of the time whenthe processor stopped executing virtual machine 706A.

When the processor resumes executing a virtual machine 706 afterexecuting another virtual machine 706, the resuming virtual machine 706copies the data from the virtual machine queue 704 of the resumingvirtual machine 706 to the processor queue 702. Returning to theexample, when the processor resumes executing virtual machine 706A afterexecuting virtual machine 706N, virtual machine 706A copies the datafrom virtual machine queue 704A to the processor queue 702. Theprocessor them resumes execution of virtual machine 706A using the datain processor queue 702. In this way, the processor does not lose datawhen switching between virtual machines.

Embodiments of the present invention include a universal wirelessrepeater to extend the range of wireless connections. Conventionalwireless repeaters employ proprietary wireless protocols, forcing a userto purchase all of his wireless equipment from the same manufacturer.The universal repeaters of the present invention employ only standardwireless protocols, freeing the user to purchase whatever wirelessequipment he desires.

FIG. 8 shows a wireless network 800 comprising a wireless universalrepeater 802 according to a preferred embodiment of the presentinvention. Wireless network 800 also comprises a conventional wirelessaccess point 804 that communicates with wireless universal repeater 802and a conventional wired network 806 such as the Internet. Wirelessnetwork 800 further comprises a conventional wireless client 810 thatcommunicates with wireless universal repeater 802 and a conventionalhost 808 such as a personal computer.

Wireless access point 804 comprises a wired wide-area network port 824to communicate with wired network 806, for example over a cable, awireless local-area network (WLAN) port 828, and a wireless access pointapplication 826 to exchange data traffic between ports 824 and 828, asis well-known in the relevant arts.

Wireless client 810 comprises a WLAN port 830 and a wireless clientapplication 832 to exchange data traffic between port 830 and host 808,as is also well-known in the relevant arts. However, due to factors suchas distance and blockage, wireless client 810 is unable to communicatedirectly with wireless access point 804.

Wireless universal repeater 802 provides the connectivity betweenwireless client 810 and wireless access point 804. Wireless universalrepeater 802 comprises a wireless WLAN port 816 to communicate withwireless access point 804 over wireless link 812 and a WLAN port 822 tocommunicate with wireless client 810 over wireless link 814. Wirelesslinks 812 and 814 can use the same band or different bands. Wirelessuniversal repeater 802 executes two virtual machines concurrently,according to the techniques described above: wireless client virtualmachine 818 and wireless access point virtual machine 820. Wirelessvirtual machines 818 and 820 together exchange data between wirelessports 816 and 822, thereby providing connectivity for wireless network800 using standard wireless protocols such as IEEE 802.11 for wirelesslinks 812 and 814.

In some embodiments of wireless universal repeater 802, wireless accesspoint virtual machine 820 and wireless client virtual machine 818 sharea single hardware WLAN port that communicates with both wireless accesspoint 804 and wireless client 810. FIG. 9 shows an architecture 900 foran embodiment employing an embedded processor. A similar architectureemploying a host processor will be apparent to one skilled in therelevant arts after reading this description. Such embodiments representa significant cost reduction over repeaters using two hardware ports.

Architecture 900 comprises a software image 902 and wireless port 304 ofFIG. 3. Image 902 comprises a multi-tasking operating system 904, aclient virtual machine 906A having a virtual machine (VM) device driver908A, an access point virtual machine 906B having a VM device driver908B, and a media access controller (MAC) device driver 910. Wirelessport 304 comprises a MAC 412 and a wireless physical-layer device (PHY)414.

Client virtual machine 906A comprises a virtual bridge 916A and avirtual wireless port 912A. Access point virtual machine 906B comprisesa virtual bridge 916B, a virtual wireless port 912B, and a virtualdistribution service (DS) port 914. Virtual bridges and virtual portsare software realizations of their hardware equivalents, as iswell-known in the relevant arts.

Virtual wireless port 912A exchanges data between client virtual machine906A and access point 804 of FIG. 8 using wireless port 304. Similarly,virtual wireless port 912B exchanges data between access point virtualmachine 906B and client 810 of FIG. 8, also using wireless port 304.Virtual DS port 914 exchanges data between client virtual machine 906Aand access point virtual machine 906B.

Bridge module 916B of access point virtual machine 906B maintains abridge table or the like to distinguish local WLAN traffic (that is,traffic between client 810 and other such clients) from external traffic(that is, traffic between client 810 and network 804). In someembodiments, bridge module 916B employs a learning process to populate abridge table for this purpose. Virtual bridge 910B directs trafficdirected to the local WLAN to virtual wireless port 912B so it can reachthe proper destination client in the local WLAN, and directs traffic notdirected to the local WLAN to virtual DS port 914 so it can reach theproper destination in network 806 through access point 804.

Embodiments of the present invention are able to execute multiplewireless applications concurrently, for example in the universalrepeater embodiment described above. Furthermore, switching betweenmodes is fast and transparent to the user. In contrast to conventionalcombination wireless network devices, no rebooting is necessary.Finally, because the architectures of the preferred embodiments areefficient, all-in-one network devices according to preferred embodimentsof the present invention can be light, inexpensive, and small enough tofit in a shirt pocket.

Embodiments of the present invention are ideal for new wireless users.New purchasers of wireless-enabled laptop computers often return home,power up their new laptops, and are disappointed to learn that nowireless connectivity awaits them. An embodiment of the inventionfeaturing a wireless access point could be bundled with wireless laptopsfor sale. On returning home with the new laptop, a user could simplyplug the all-in-one wireless network device into a phone jack or thelike, power up the laptop, and enjoy instant wireless networking.

The invention can be implemented in digital electronic circuitry, or incomputer hardware, firmware, software, or in combinations of them.Apparatus of the invention can be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a programmable processor; and method steps of the inventioncan be performed by a programmable processor executing a program ofinstructions to perform functions of the invention by operating on inputdata and generating output. The invention can be implementedadvantageously in one or more computer programs that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. Each computer program can be implemented ina high-level procedural or object-oriented programming language, or inassembly or machine language if desired; and in any case, the languagecan be a compiled or interpreted language. Suitable processors include,by way of example, both general and special purpose microprocessors.Generally, a processor will receive instructions and data from aread-only memory and/or a random access memory. Generally, a computerwill include one or more mass storage devices for storing data files;such devices include magnetic disks, such as internal hard disks andremovable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM disks. Any of the foregoing canbe supplemented by, or incorporated in, ASICs (application-specificintegrated circuits).

A number of implementations of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention.Accordingly, other implementations are within the scope of the followingclaims.

1. A wireless network device for communicating with a network, thewireless network device comprising: a memory to store an image, theimage comprising a plurality of virtual machines and only onemulti-tasking operating system, wherein each of the plurality of virtualmachines comprises one of a plurality of wireless network applicationsto execute on the multi-tasking operating system; a processor to executethe plurality of virtual machines; and a port comprising aphysical-layer device to communicate with the network, and a mediaaccess controller to communicate with the physical-layer device and theprocessor, wherein the memory comprises one of a plurality of virtualmachine queues for each of the plurality of virtual machines and aprocessor queue for the processor that is separate from the plurality ofvirtual machine queues, wherein the processor stores data to beprocessed in the processor queue for members of the plurality of virtualmachines being executed by the processor, wherein each respective one ofthe plurality of virtual machines creates a copy in a respective one ofthe plurality of virtual machine queues of the data in the processorqueue when the processor is executing the respective one of theplurality of virtual machines, and wherein when the processor resumesexecuting a first of the plurality of virtual machines after executing asecond of the plurality of virtual machines, the first of the pluralityof virtual machines copies the data from the respective one of theplurality of virtual machine queues for the first of the plurality ofvirtual machines to the processor queue.
 2. The wireless network deviceof claim 1, wherein each of the plurality of virtual machines iscompliant with a standard selected from the group consisting of IEEEstandards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
 3. The wirelessnetwork device of claim 1, wherein the memory comprises a non-volatilememory, and the wireless network device further comprises: a volatilememory; and a memory controller to create a copy of the image from thenon-volatile memory to the volatile memory; wherein the processorexecutes the plurality of virtual machines from the volatile memory. 4.The wireless network device of claim 1, wherein at least one of theplurality of wireless network applications is selected from the groupconsisting of: a wireless network access point; a wireless networkclient; a wireless network point-to-point bridge; a wireless networkmulti-point bridge; and a wireless network repeater.
 5. The wirelessnetwork device of claim 1, wherein the image further comprises: aplurality of virtual machine device drivers to communicate with theplurality of virtual machines; and a media access controller devicedriver to communicate with the plurality of virtual machine devicedrivers and the media access controller.
 6. The wireless network deviceof claim 1, further comprising: an input device to select one or more ofthe plurality of virtual machines; wherein the processor executes theone or more of the plurality of virtual machines selected by the inputdevice.
 7. The wireless network device of claim 1, wherein the processorexecutes the plurality of virtual machines concurrently.
 8. The wirelessnetwork device of claim 1: wherein the plurality of virtual machinescomprise a wireless network access point virtual machine and a wirelessnetwork client virtual machine; wherein the processor executes thewireless network access point virtual machine and the wireless networkclient virtual machine concurrently; wherein the wireless network clientvirtual machine comprises a first virtual wireless port to communicatewith the port, and a first virtual bridge to communicate with the firstvirtual wireless port; and wherein the wireless network access pointvirtual machine comprises a second virtual wireless port to communicatewith the port, a virtual distribution service port to communicate withthe first virtual bridge, and a second virtual bridge to communicatewith the second virtual wireless port and the virtual distributionservice port.
 9. A method for a wireless network device to communicatewith a network, the method comprising; storing an image in the wirelessnetworking device, the image comprising a plurality of virtual machinesand only one multi-tasking operating system, wherein each of theplurality of virtual machines comprises one of a plurality of wirelessnetwork applications to execute on the multi-tasking operating system;executing the plurality of virtual machines; creating one of a pluralityof virtual machine queues for each of the plurality of virtual machinesand a processor queue for a processor that is separate from theplurality of virtual machine queues; storing, in the processor queue,data to be processed for one of the plurality of virtual machines thatis being executed; and creating a copy in one of the plurality ofvirtual machine queues of the data in the processor queue when the oneof the plurality of virtual machines is executing, wherein when the oneof the plurality of virtual machines resumes executing after another ofthe plurality of virtual machines was executing, copying the data fromthe one of the plurality of virtual machine queues to the processorqueue.
 10. The method of claim 9, wherein the wireless network device iscompliant with a standard selected from the group consisting of IEEEstandards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
 11. The methodof claim 9, wherein the image is stored in a non-volatile memory of thewireless network device, and the method further comprises: copying theimage from the non-volatile memory to a volatile memory; and wherein theplurality of virtual machines are executed from the volatile memory. 12.The method of claim 9, wherein at least one of the plurality of wirelessnetwork applications is selected from the group consisting of: awireless network access point; a wireless network client; a wirelessnetwork point-to-point bridge; a wireless network multi-point bridge;and a wireless network repeater.
 13. The method of claim 9, furthercomprising: executing selected ones of the plurality of virtual machinesin accordance with an input.
 14. The method of claim 9, furthercomprising: executing the plurality of virtual machines concurrently.15. A wireless network device for communicating with a network, thewireless network device comprising: a memory to store an image, theimage comprising a plurality of virtual machines and only onemulti-tasking operating system, wherein each of the plurality of virtualmachines comprises one of a plurality of wireless network applicationsto execute on the multi-tasking operating system; a plurality of virtualmachine device drivers, wherein each one of the plurality of virtualmachines directly communicates with a respective one of the plurality ofvirtual machine device drivers; a processor to execute the plurality ofvirtual machines; and a bus to communicate with the processor and thenetwork, wherein the memory comprises one of a plurality of virtualmachine queues for each of the plurality of virtual machines and aprocessor queue for the processor that is separate from the plurality ofvirtual machine queues, wherein the processor stores data to beprocessed in the processor queue for members of the plurality of virtualmachines being executed by the processor, wherein each respective one ofthe plurality of virtual machines creates a copy in a respective one ofthe plurality of virtual machine queues of the data in the processorqueue when the processor is executing the respective one of theplurality of virtual machines, and wherein when the processor resumesexecuting a first of the plurality of virtual machines after executing asecond of the plurality of virtual machines, the first of the pluralityof virtual machines copies the data from the respective one of theplurality of virtual machine queues for the first of the plurality ofvirtual machines to the processor queue.
 16. The wireless network deviceof claim 15, wherein each of the plurality of virtual machines iscompliant with a standard selected from the group consisting of IEEEstandards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
 17. Thewireless network device of claim 15, wherein the memory comprises anon-volatile memory, and the wireless network device further comprises:a volatile memory; and a memory controller to create a copy of the imagefrom the non-volatile memory to the volatile memory, wherein theprocessor executes the plurality of virtual machines from the volatilememory.
 18. The wireless network device of claim 15, wherein the imagefurther comprises: a bus interface driver to communicate with theplurality of virtual machine device drivers and the bus.
 19. Thewireless network device of claim 15, further comprising: aphysical-layer device to communicate with the network; and a mediaaccess controller to communicate with the physical-layer device and thebus.
 20. The wireless network device of claim 19, wherein the imagefurther comprises: a first bus interface driver to communicate with theplurality of virtual machine device drivers and the bus; a second businterface driver to communicate with the bus; and a media accesscontroller device driver to communicate with the second bus interfacedriver and the media access controller.
 21. The wireless network deviceof claim 15, wherein at least one of the plurality of wireless networkapplications is selected from the group consisting of: a wirelessnetwork access point; a wireless network client; a wireless networkpoint-to-point bridge; a wireless network multi-point bridge; and awireless network repeater.
 22. The wireless network device of claim 15,further comprising: an input device to select one or more of theplurality of virtual machines; wherein the processor executes the one ormore of the plurality of virtual machines selected by the input device.23. The wireless network device of claim 15, wherein the processorexecutes the plurality of virtual machines concurrently.
 24. Thewireless network device of claim 15: wherein the plurality of virtualmachines comprise a wireless network access point virtual machine and awireless network client virtual machine; wherein the processor executesthe wireless network access point virtual machine and the wirelessnetwork client virtual machine concurrently; wherein the wirelessnetwork client virtual machine comprises a first virtual wireless portto communicate with the bus, and a first virtual bridge to communicatewith the first virtual wireless port; and wherein the wireless networkaccess point virtual machine comprises a second virtual wireless port tocommunicate with bus, a virtual distribution service port to communicatewith the first virtual bridge, and a second virtual bridge tocommunicate with the second virtual wireless port and the virtualdistribution service port.
 25. A wireless network device forcommunicating with a network, the wireless network device comprising:memory means for storing an image, the image comprising a plurality ofvirtual machines and only one multi-tasking operating system, whereineach of the plurality of virtual machines comprises one of a pluralityof wireless network applications to execute on the multi-taskingoperating system; processing means for executing the plurality ofvirtual machines; and port means comprising physical-layer means forcommunicating with the network, and media access control means forcommunicate with the physical-layer means and the processing means,wherein the memory means comprises one of a plurality of virtual machinequeues for each of the plurality of virtual machines and a processorqueue for the processing means that is separate from the plurality ofvirtual machine queues, wherein the processing means stores data to beprocessed in the processor queue for members of the plurality of virtualmachines being executed by the processing means, wherein each respectiveone of the plurality of virtual machines creates a copy in a respectiveone of the plurality of virtual machine queues of the data in theprocessor queue when the processing means is executing the respectiveone of the plurality of virtual machines, and wherein when theprocessing means resumes executing a first of the plurality of virtualmachines after executing a second of the plurality of virtual machines,the first of the plurality of virtual machines copies the data from therespective one of the plurality of virtual machine queues for the firstof the plurality of virtual machines to the processor queue.
 26. Thewireless network device of claim 25, wherein each of the plurality ofvirtual machines is compliant with a standard selected from the groupconsisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and802.11n.
 27. The wireless network device of claim 25, wherein the memorymeans comprises non-volatile memory means, and the wireless networkdevice further comprises: volatile memory means; and memory controllermeans for creating a copy of the image from the non-volatile memorymeans to the volatile memory means; wherein the processing meansexecutes the plurality of virtual machines from the volatile memorymeans.
 28. The wireless network device of claim 25, wherein at least oneof the plurality of wireless network applications is selected from thegroup consisting of: a wireless network access point; a wireless networkclient; a wireless network point-to-point bridge; a wireless networkmulti-point bridge; and a wireless network repeater.
 29. The wirelessnetwork device of claim 25, wherein the image further comprises: aplurality of virtual machine device drivers to communicate with theplurality of virtual machines; and a media access controller devicedriver to communicate with the plurality of virtual machine devicedrivers and the media access control means.
 30. The wireless networkdevice of claim 25, further comprising: input means for selecting one ormore of the plurality of virtual machines; wherein the processing meansexecutes the one or more of the plurality of virtual machines selectedby the input means.
 31. The wireless network device of claim 25, whereinthe processing means executes the plurality of virtual machinesconcurrently.
 32. The wireless network device of claim 25: wherein theplurality of virtual machines comprise a wireless network access pointvirtual machine and a wireless network client virtual machine; whereinthe processing means executes the wireless network access point virtualmachine and the wireless network client virtual machine concurrently;wherein the wireless network client virtual machine comprises a firstvirtual wireless port to communicate with the port means, and a firstvirtual bridge to communicate with the first virtual wireless port; andwherein the wireless network access point virtual machine comprises asecond virtual wireless port to communicate with the port means, avirtual distribution service port to communicate with the first virtualbridge, and a second virtual bridge to communicate with the secondvirtual wireless port and the virtual distribution service port.
 33. Acomputer program embodying instructions recorded on a computer readablemedium executable by a computer for a wireless network device tocommunicate with a network, the computer program comprising instructionsfor: storing an image in the wireless network device, the imagecomprising a plurality of virtual machines and only one multi-taskingoperating system, wherein each of the plurality of virtual machinescomprises one of a plurality of wireless network applications to executeon the multi-tasking operating system; executing the plurality ofvirtual machines; creating one of a plurality of virtual machine queuesfor each virtual machine and a processor queue for a processor that isseparate from the plurality of virtual machine queues; storing, in theprocessor queue, data to be processed for one of the plurality ofvirtual machines that is being executed; and creating a copy in one ofthe plurality of virtual machine queues of the data in the processorqueue when the one of the plurality of virtual machines is executing,wherein when the one of the plurality of virtual machines resumesexecuting after another of the plurality of virtual machines wasexecuting, copying the data from the one of the plurality of virtualmachine queues to the processor queue.
 34. The computer program of claim33, wherein the wireless network device is compliant with a standardselected from the group consisting of IEEE standards 802.11, 802.11a,802.11b, 802.11g and 802.11n.
 35. The computer program of claim 33,wherein: the image is stored in a non-volatile memory, and the computerprogram further comprises instructions for: copying the image from thenon-volatile memory to a volatile memory, wherein the plurality ofvirtual machines are executed from the volatile memory.
 36. The computerprogram of claim 33, wherein at least one of the plurality of wirelessnetwork applications is selected from the group consisting of: awireless network access point; a wireless network client; a wirelessnetwork point-to-point bridge; a wireless network multi-point bridge;and a wireless network repeater.
 37. The computer program of claim 33,further comprising instructions for: executing selected ones of theplurality of virtual machines in accordance with an input.
 38. Thecomputer program of claim 33, further comprising instructions for:executing a plurality of the plurality of virtual machines concurrently.39. A wireless network device for communicating with a network, thewireless network device comprising: memory means for storing an image,the image comprising a plurality of virtual machines and onlyone-multi-tasking operating system, wherein each of the plurality ofvirtual machines comprises one of a plurality of wireless networkapplications to execute on the multi-tasking operating system;processing means for executing the plurality of virtual machines; aplurality of virtual machine device drivers, wherein each of theplurality of virtual machines directly communicates with a respectiveone of the plurality of virtual machine device drivers; and bus meansfor communicating with the processing means and the network, wherein thememory means comprises one of a plurality of virtual machine queues foreach of the plurality of virtual machines and a processor queue for theprocessing means that is separate from the plurality of virtual machinequeues, wherein the processing means stores data to be processed in theprocessor queue for members of the plurality of virtual machines beingexecuted by the processing means, wherein each respective one of theplurality of virtual machines creates a copy in a respective one of theplurality of virtual machine queues of the data in the processor queuewhen the processing means is executing the respective one of theplurality of virtual machines, and wherein when the processing meansresumes executing a first of the plurality of virtual machines afterexecuting a second of the plurality of virtual machines, the first ofthe plurality of virtual machines copies the data from the respectiveone of the plurality of virtual machine queues to the processor queue.40. The wireless network device of claim 39, wherein each of theplurality of virtual machines is compliant with a standard selected fromthe group consisting of IEEE standards 802.11, 802.11a, 802.11b,802.11_(g) and 802.11n.
 41. The wireless network device of claim 39,wherein the memory means comprises non-volatile memory means, and thewireless network device further comprises: volatile memory means; andmemory controller means for creating a copy of the image from thenon-volatile memory means to the volatile memory means; wherein theprocessing means executes the plurality of virtual machines from thevolatile memory means.
 42. The wireless network device of claim 39,wherein the image further comprises: a bus interface driver tocommunicate with the plurality of virtual machine device drivers and thebus means.
 43. The wireless network device of claim 39, furthercomprising: a physical-layer device means for communicating with thenetwork; and media access control means for communicating with thephysical-layer device means and the bus means.
 44. The wireless networkdevice of claim 43, wherein the image further comprises: a plurality ofvirtual machine device drivers to communicate with the plurality ofvirtual machines; a first bus interface driver to communicate with theplurality of virtual machine device drivers and the bus means; a secondbus interface driver to communicate with the bus means; and a mediaaccess controller device driver to communicate with the second businterface driver and the media access control means.
 45. The wirelessnetwork device of claim 39, wherein at least one of the plurality ofwireless network applications is selected from the group consisting of:a wireless network access point; a wireless network client; a wirelessnetwork point-to-point bridge; a wireless network multi-point bridge;and a wireless network repeater.
 46. The wireless network device ofclaim 39, further comprising: input means for selecting one or more ofthe plurality of virtual machines, wherein the processing means executesthe one or more of the plurality of virtual machines selected by theinput means.
 47. The wireless network device of claim 39, wherein theprocessing means executes a plurality of the plurality of virtualmachines concurrently.
 48. The wireless network device of claim 39:wherein the plurality of virtual machines comprise a wireless networkaccess point virtual machine and a wireless network client virtualmachine; wherein the processing means executes the wireless networkaccess point virtual machine and the wireless network client virtualmachine concurrently; wherein the wireless network client virtualmachine comprises a first virtual wireless port to communicate with thebus means, and a first virtual bridge to communicate with the firstvirtual wireless port; and wherein the wireless network access pointvirtual machine comprises a second virtual wireless port to communicatewith the bus means, a virtual distribution service port to communicatewith the first virtual bridge, and a second virtual bridge tocommunicate with the second virtual wireless port and the virtualdistribution service port.